iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 17
1
Modern Web

謙虛,踏實的Web Assembly練習系列 第 17

[練習 16] 繼續整理WebAssembly指令的文件

  • 分享至 

  • xImage
  •  

型別轉換

轉換成32位元整數

指令 參數 返回 說明
i32.wrap/i64 (參數1) 轉換結果 將64位元整數轉換成32位元整數
i32.trunc_s/f32 (參數1) 轉換結果 將32位元浮點數轉換成32位元整數(有號)
i32.trunc_s/f64 (參數1) 轉換結果 將64位元浮點數轉換成32位元整數(有號)
i32.trunc_u/f32 (參數1) 轉換結果 將32位元浮點數轉換成32位元整數(無號)
i32.trunc_u/f64 (參數1) 轉換結果 將64位元浮點數轉換成32位元整數(無號)
i32.reinterpret/f32 (參數1) 轉換結果 將32位元浮點數裡面的位元,直接當作32位元整數裡的位元

轉換成64位元整數

指令 參數 返回 說明
i64.extend_s/i32 (參數1) 轉換結果 將32位元整數擴充成64位元整數(有號)
i64.extend_u/i32 (參數1) 轉換結果 將32位元整數擴充成64位元整數(無號)
i64.trunc_s/f32 (參數1) 轉換結果 將32位元浮點數轉換成64位元整數(有號)
i64.trunc_s/f64 (參數1) 轉換結果 將64位元浮點轉換成64位元整數(有號)
i64.trunc_u/f32 (參數1) 轉換結果 將32位元浮點轉換成64位元整數(無號)
i64.trunc_u/f64 (參數1) 轉換結果 將64位元浮點轉換成64位元整數(無號)
i64.reinterpret/f64 (參數1) 轉換結果 將64位元浮點數裡面的位元,直接當作64位元整數裡的位元

轉換成32位元浮點數

指令 參數 返回 說明
f32.demote/f64 (參數1) 轉換結果 將64位元浮點數轉換成32位元浮點數
f32.convert_s/i32 (參數1) 轉換結果 將32位元整數轉換成32位元浮點數(有號)
f32.convert_s/i64 (參數1) 轉換結果 將64位元整數轉換成32位元浮點數(有號)
f32.convert_u/i32 (參數1) 轉換結果 將32位元整數轉換成32位元浮點數(無號)
f32.convert_u/i64 (參數1) 轉換結果 將64位元整數轉換成32位元浮點數(無號)
f32.reinterpret/i32 (參數1) 轉換結果 將32位元整數裡面的位元,直接當作32位元浮點數裡的位元

轉換成64位元浮點數

指令 參數 返回 說明
f64.promote/f32 (參數1) 轉換結果 將32位元浮點數轉換成64位元浮點數
f64.convert_s/i32 (參數1) 轉換結果 將32位元整數轉換成64位元浮點數(有號)
f64.convert_s/i64 (參數1) 轉換結果 將64位元整數轉換成64位元浮點數(有號)
f64.convert_u/i32 (參數1) 轉換結果 將32位元整數轉換成64位元浮點數(無號)
f64.convert_u/i64 (參數1) 轉換結果 將64位元整數轉換成64位元浮點數(無號)
f64.reinterpret/i64 (參數1) 轉換結果 將64位元整數裡面的位元,直接當作64位元浮點數裡的位元

其他指令

指令 參數 返回 說明
drop (參數1) 把參數從堆疊中丟棄
select (參數1) (參數2) (參數3) 結果 如果參數3為不是0,則返回參數1,否則返回參數2(參數1與參數2必須同型別,參數3是i32)
unreachable 直接觸發trap(錯誤或例外,程式停止執行)
nop 無動作,但是會稍微使用一點運算時間

大致上就把WebAssembly目前使用到的指令整理完了。明天來介紹一下目前釋出的版本(MVP,Most Viable Product)的一些特性,以及未來可能加入的一些功能。

之後除了看看在node.js環境中執行WebAssembly的狀況,大概就都是一些應用,以及使用Emscripten來把其他語言的應用轉到WebAssembly。


上一篇
[練習 15] 整理一下關於WebAssembly指令的文件
下一篇
[練習 17] 目前版本的狀況以及未來展望
系列文
謙虛,踏實的Web Assembly練習20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言